import {createRouter,createWebHashHistory,createWebHistory} from 'vue-router'
import NotFound from '../pages/NotFound.vue'
import Home from '../pages/Home.vue'
import Login from '../pages/Login.vue'
import test from "../pages/Test.vue";
import store from "../store/index.js";
// 1. 定义路由组件.·
// 也可以从其他文件导入
// const Home = { template: '<div>Home</div>' }
// const About = { template: '<div>About</div>' }
// 2. 定义一些路由
// 每个路由都需要映射到一个组件。
// 我们后面再讨论嵌套路由。
const routes = [
    {path:'/',component: Home},
    {path:'/Login',component: Login},
    // 将匹配所有内容并将其放在 `$route.params.pathMatch` 下
    { path: '/:pathMatch(.*)*', name: "NotFound", component: NotFound },
    {path: '/test',name: 'test',component: test}
]


// 3. 创建路由实例并传递 `routes` 配置
// 你可以在这里输入更多的配置，但我们在这里
// 暂时保持简单
const router = createRouter({
    // 4. 内部提供了 history 模式的实现。为了简单起见，我们在这里使用 hash 模式。
    /*createWebHistory与createWebHashHistory的区别*/
    history: createWebHistory(),
    routes, // `routes: routes` 的缩写
})

//全局前置守卫 可以判断用户有无条件跳转
router.beforeEach((to, from, next) => {
    if (to.path === '/Login') {    //若要跳转的页面是登录界面
        next();     //直接跳转
        console.log(to.path,store.state.token,localStorage.getItem('token'))
    } else if (to.path === '/') {   //若要跳转的页面是个人界面
        let token = localStorage.getItem('token');  //获取本地存储的token值
        if (token === null || token ===''||token===undefined) {    //若token为空则验证不成功，跳转到登录页面
            console.log('token:',token)
            next('/Login');
        } else {           //不为空则验证成功
            next();
        }
    } else {
        next();
    }
})
export default router

/*
// 5. 创建并挂载根实例
const app = Vue.createApp({})
//确保 _use_ 路由实例使
//整个应用支持路由。
app.use(router)

app.mount('#app')

// 现在，应用已经启动了*/
